/* tslint:disable */
/* eslint-disable */

import React, { CSSProperties, SVGAttributes, FunctionComponent } from 'react';
import { getIconColor } from './helper';

interface Props extends Omit<SVGAttributes<SVGElement>, 'color'> {
  size?: number;
  color?: string | string[];
}

const DEFAULT_STYLE: CSSProperties = {
  display: 'block',
};

const IconSetting: FunctionComponent<Props> = ({ size, color, style: _style, ...rest }) => {
  const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE;

  return (
    <svg viewBox="0 0 1024 1024" width={size + 'px'} height={size + 'px'} style={style} {...rest}>
      <path
        d="M588.064 122.496a32 32 0 0 1 34.112-11.744c68.896 18.88 131.52 55.296 182.176 105.28a32 32 0 0 1 7.04 35.104 95.584 95.584 0 0 0 5.44 84.864 95.776 95.776 0 0 0 70.88 47.232 32 32 0 0 1 26.848 23.616c8.896 34.016 13.44 69.28 13.44 105.152 0 35.84-4.544 71.072-13.44 105.152a32 32 0 0 1-26.88 23.68 95.616 95.616 0 0 0-70.848 47.168 95.776 95.776 0 0 0-5.472 84.928 32 32 0 0 1-7.04 35.008 415.04 415.04 0 0 1-182.144 105.28 32 32 0 0 1-33.888-11.424A95.616 95.616 0 0 0 512 864c-30.304 0-58.24 14.08-76.32 37.76a32 32 0 0 1-33.856 11.424 414.848 414.848 0 0 1-182.176-105.216 32 32 0 0 1-7.04-35.072 95.648 95.648 0 0 0-5.44-84.896 95.776 95.776 0 0 0-70.88-47.232 32 32 0 0 1-26.848-23.616A414.976 414.976 0 0 1 96 512c0-35.84 4.544-71.072 13.44-105.152a32 32 0 0 1 26.88-23.68A95.616 95.616 0 0 0 207.136 336c15.136-26.24 16.896-57.44 5.472-84.928a32 32 0 0 1 7.04-35.008 415.04 415.04 0 0 1 182.144-105.28 32 32 0 0 1 33.888 11.424A95.616 95.616 0 0 0 512 160a95.36 95.36 0 0 0 74.752-35.744zM624 178.208l-2.784 2.752A159.616 159.616 0 0 1 512 224a159.488 159.488 0 0 1-110.848-44.64l-1.12-1.152-4.32 1.44a351.04 351.04 0 0 0-113.376 65.6l-3.392 3.008 0.8 2.976a159.584 159.584 0 0 1-12.928 108.992l-4.224 7.776a159.488 159.488 0 0 1-94.08 73.664l-1.536 0.384-1.152 5.856a353.184 353.184 0 0 0-5.6 51.104L160 512c0 21.696 1.952 43.136 5.824 64.064l1.152 5.824 1.6 0.416a159.584 159.584 0 0 1 89.632 66.56l4.384 7.136a159.488 159.488 0 0 1 17.12 116.8l-0.768 2.912 3.36 3.04a350.848 350.848 0 0 0 113.408 65.536l4.32 1.44 1.152-1.152a159.584 159.584 0 0 1 102.432-44.352L512 800c42.08 0 81.472 16.384 110.816 44.64l1.12 1.12 4.352-1.408a351.072 351.072 0 0 0 113.376-65.6l3.36-3.04-0.768-2.944a159.584 159.584 0 0 1 12.928-108.992l4.224-7.776a159.488 159.488 0 0 1 94.08-73.664l1.504-0.416 1.184-5.824c3.104-16.8 4.96-33.856 5.6-51.104L864 512c0-21.696-1.952-43.136-5.824-64.064l-1.184-5.856-1.568-0.384a159.584 159.584 0 0 1-89.632-66.56l-4.384-7.136a159.456 159.456 0 0 1-17.12-116.8l0.768-2.944-3.36-3.008a351.584 351.584 0 0 0-113.408-65.6l-4.32-1.44zM512 352a160 160 0 1 1 0 320 160 160 0 0 1 0-320z m0 64a96 96 0 1 0 0 192 96 96 0 0 0 0-192z"
        fill={getIconColor(color, 0, '#333333')}
      />
    </svg>
  );
};

IconSetting.defaultProps = {
  size: 18,
};

export default IconSetting;
